.\"                                      Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH LSMI-KEYHACK 1 "May 15, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh        disable hyphenation
.\" .hy        enable hyphenation
.\" .ad l      left justify
.\" .ad b      justify to both left and right margins
.\" .nf        disable filling
.\" .fi        enable filling
.\" .br        insert line break
.\" .sp <n>    insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME

lsmi-keyhack \- Linux Pseudo MIDI Input -- Keyboard Hack
.SH SYNOPSIS
.B lsmi-keyhack
.RI [ options ] " files" ...
.SH DESCRIPTION

This driver is for a hacked AT / PS/2 keyboard functioning as a MIDI
controller.

It is somewhat specific to the author's own hardware, but, since it relies a learning
capability rather than a fixed keymap, it should be equally useful for
others wishing to build their own fake MIDI keyboard. Of course, such a
keyboard will not be velocity sensitive, but this project is a good way to
salvage both an old QWERTY keyboard and a manual from a decrepit analog
organ or cheap PCM noise-maker.

The driver supports up to 88 musical keys, three footswitches, and several
additional buttons for control and data entry. It has the rather unfortunate
side-effect of rendering the console useless, unless, of course you have
another (USB) keyboard to type on.

.SH USAGE

Distribution specific init scripts are not included. The drivers may be
started from init, your .bashrc, by qjackctl, etc. In order to be run by a
non-root user the drivers must have access to the device files in /dev/input.
This may be accomplished by adding a group 'input', adding desired users to
this group, and configuring udev to assign the appropriate ownership to files
in /dev/input. It should be perfectly safe to run the drivers as root,
however.

For realtime scheduling (the \-R option), either use set_rlimits, or set the
appropriate POSIX capabilities on the executable:
.P
/sbin/setcap cap_ipc_lock,cap_sys_nice=ep /usr/bin/lsmi-joystick
.P
The lsmi.SlackBuild script already includes RT scheduling support.

.SH OPTIONS
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-d, \-\-device specialfile
Event device to use (instead of event0).
.TP
.B \-R, \-\-realtime rtprio 
Use realtime priority 'rtprio' (requires privs).
.TP
.B \-v, \-\-verbose
Be verbose (show note events).
.TP
.B \-c, \-\-channel n
Initial MIDI channel.
.TP
.B \-p, \-\-port client:port
Connect to ALSA Sequencer client on startup.
.TP
.B \-k, \-\-keydata file
Name file to read/write key mappings (instead of ~/.keydb).
.SH SEE ALSO
.BR lsmi-joystick (1),
.BR lsmi-monterey (1),
.BR lsmi-mouse (1).
.br
.SH AUTHOR
lsmi was written by Jonathan Moore Liles.
.PP
This manual page was written by Ariel Errera <ariel@musix.org.ar>,
for the Debian project (but may be used by others). It was then modified
by B. Watson for the SlackBuilds.org project.
